$(function() {
    $( ".alias-disponibles" ).sortable({
        connectWith: "div",
        dropOnEmpty: true,
        update: function(event, ui) {
                $(ui.sender).sortable('cancel');
        }
    });

    $( ".alias-nucleos" ).sortable({
        connectWith: "div",
        dropOnEmpty: false,
        update: function(event, ui) {
            if($(ui.item).attr("lisorden")!=-1)
               return;

            if (!guardar($(ui.item).attr("lisid"), ui.item))
                $(ui.sender).sortable('cancel');
        }
    });
    
    $( ".alias-disponibles, .alias.nucleos" ).disableSelection();
    
    $("#alias_id").change(function(){
        if ($("#alias_id").val() !=""){
            $(".upprogress").show();
            $(".alias-disponibles").append('<div class="portlet ui-state-default ui-widget ui-widget-content ui-helper-clearfix ui-corner-all alias-disponibles-opt" lisid="' + $("#alias_id").val() + '" lisorden="-1" ><div class="portlet-header ui-widget-header ui-corner-all"><span class="ui-icon ui-icon-closethick" onclick="eliminar(this);"></span><span class="ui-icon ui-icon-minusthick" onclick="potlet(this);"></span>'+ $("#alias_id option:selected").text().substring(0, 60) +'...</div> <div class="portlet-content">' + $("#alias_id option:selected").text() + "</div></div>");
            $("#alias_id option:selected").hide();
            $("#alias_id").trigger("liszt:updated");
            $(".upprogress").hide();
        }
    });
    
    $("#modulo_id").change(function(){
        $(".upprogress").show();
        if ($("#modulo_id").val() !=""){
            $("#alias_id").removeAttr('disabled');
            $(".saveordernucleo").removeAttr('disabled');
            recarga_alias();
            obtiene_datos($("#modulo_id").val());
        }else{
            $("#alias_id").attr('disabled','disabled');
            $(".saveordernucleo").attr('disabled','disabled');
        }
        $("#alias_id").trigger("liszt:updated");
        $(".alias-disponibles").empty();
        $(".upprogress").hide();
    });
    $("#modulo_id").trigger('change');
});

function recarga_alias() {
    var url = "index.php?r=nucleosbasicos/cargar_alias";
    $.ajax({
        url: url,
        async: false,
        data: "nucleo=" + $("#nucleo_basico_id").val(),
        success: function(result) {
            $("#alias_id").empty();
            $("#alias_id").hide().append(result).show("slow");
        },
        beforeSend: function() {
            $(".upprogress").show();
        },
        error: function(result) {
            Alert_Ui("Error", result.status + ' ' + result.statusText);
        }
    });
    $(".upprogress").hide();
}

function potlet(objeto){
        $(objeto).toggleClass( "ui-icon-minusthick" ).toggleClass( "ui-icon-plusthick" );
        $(objeto).parents( ".portlet:first" ).find( ".portlet-content" ).toggle();
}

function eliminar(objeto){   
    var resp = false;
    var idalias = $(objeto).parent("div").parent(".portlet").attr("lisid");
    var tipo = $(objeto).parent("div").parent(".portlet").parent("div").attr("tipo");
    
    if (tipo == 0){
        $("#alias_id option[value='"+ idalias +"']").show();
        $("#alias_id").trigger("liszt:updated");
        resp=true;
    }else{
        if(!confirm('Desea eliminar este alias?, podria perder información en las encuestas'))
            return;
        
        resp = eliminar_nam(idalias);
    }
    if (resp)
        $(objeto).parent("div").parent(".portlet").remove();
}

function obtiene_datos(modulo) {
    var url = "index.php?r=nucleosbasicos/cargar_lista";
    $.ajax({
        url: url,
        async: false,
        data: "modulo="+ modulo +"&nucleo=" + $("#nucleo_basico_id").val(),
        success: function(result) {
            $(".alias-nucleos").empty();
            $(".alias-nucleos").hide().append(result).show("slow");
        },
        beforeSend: function() {
            $(".upprogress").show();
        },
        error: function(result) {
            Alert_Ui("Error", result.status + ' ' + result.statusText);
        }
    });
    $(".upprogress").hide();
    $(".alias-nucleos .portlet .portlet-content").toggle();
}

function save_order_nucleos(nucleo){
    var modulo = $("#modulo_id").val();
    var temp="";
    var i=0;
    var url = "index.php?r=nucleosbasicos/ordenarlistas";
    
    if(modulo =="")
        return false;
    
    $(".alias-nucleos .portlet").each(function() {
        temp = temp + $(this).attr("lisid") + "," + $(this).attr("lisorden") + "," + i + ";";
        i++;
    });
    
    if (temp == "")
        return false;
    
    $.ajax({
        url: url,
        async: false,
        data: {
            arreglo: temp,
            modulo: modulo,
            nucleo: nucleo
        },
        success: function(result) {
            Alert_Ui('Ordenar', result);
            if (result=="Ordenados correctamente"){
                obtiene_datos(modulo);
            }
        },
        beforeSend: function() {
            $(".upprogress").show();
        },
        error: function(result) {
            Alert_Ui("Error", result.status + ' ' + result.statusText);
        }
    });
    $(".upprogress").hide();
    return false;
}

function guardar(alias, objeto){
    var resp = false;
    var url = "index.php?r=nucleosbasicos/guardarnucleo";
    $.ajax({
        url: url,
        async: false,
        data: "alias=" + alias + "&modulo=" + $("#modulo_id").val() + "&nucleo=" + $("#nucleo_basico_id").val(),
        success: function(result) {
            if(result=="true"){
                $(objeto).attr("tipo",1).attr("lisorden", "0");
                resp=true;
            }else{
                Alert_Ui("Error", result);
                resp=false;
            }
        },
        beforeSend: function() {
            $(".upprogress").show();
        },
        error: function(result) {
            Alert_Ui("Error", result.status + ' ' + result.statusText);
        }
    });
    $(".upprogress").hide();
    return resp;
}

function eliminar_nam(alias){
    var resp = false;
    var url = "index.php?r=nucleosbasicos/eliminarnucleo";
    $.ajax({
        url: url,
        async: false,
        data: "alias=" + alias + "&modulo=" + $("#modulo_id").val() + "&nucleo=" + $("#nucleo_basico_id").val(),
        success: function(result) {
            if(result=="true"){
                resp=true;
            }else{
                Alert_Ui("Error", result);
                resp=false;
            }
        },
        beforeSend: function() {
            $(".upprogress").show();
        },
        error: function(result) {
            Alert_Ui("Error", result.status + ' ' + result.statusText);
        }
    });
    $(".upprogress").hide();
    return resp;
}